﻿using Architecture.Domain;
using Architecture.Domain.Dto;
using Architecture.Service.Rabbit;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Architecture.Service
{
    public interface ITraceService
    {
        #region 溯源
        Task<int> AddAsync(Traceability model);
        //溯源列表
        Task<object> GetAllAsync();
        //商品列表
        Task<List<Goods>> GetGooda();
        //溯源删除
        Task<int> DeleteAsync(int id);
        Task<int> UpdateAsync(Traceability model);
        Task<Traceability> GetIdAsync(int id);
        #endregion

        #region 养殖
        //养殖添加
        Task<int> AddFarming(Farming mode);
        //养殖列表
        Task<object> GetFarming(int id);
        #endregion

        #region 保健
        //保健添加
        Task<int> AddHealth(Health mode);
        //保健列表
        Task<object> GetHealth(int id);
        //保健详情
        Task<Health> GetAllHealth(int id);
        //保健修改
        Task<int> UpdateHealth(Health model);
        //保健删除
        Task<int> DeleteHealth(int id);
        #endregion

        #region 企业
        //企业添加
        Task<int> AddBusiness(Business mode);
        //企业列表
        Task<object> GetBusiness(int id);
        //修改企业
        Task<int> UpdateBusiness(Business mode);
        #endregion

        #region 图片
        //产品检验报告图片
        Task<int> AddPhoto(Photo mode);
        //产品检验图删除
        Task<int> DeletePhoto(string? url);
        //检验图片详情
        Task<List<PhotoDto>> GetPhoto(int id);
        //动检图详情
        Task<List<PhotoDto>> GetDPhoto(int id);
        //企业图片详情
        Task<List<PhotoDto>> GetQPhoto(int id);
        //资质图详情
        Task<List<PhotoDto>> GetZPhoto(int id);
        //食品图详情
        Task<List<PhotoDto>> GetSPhoto(int id);
        #endregion

        #region 屠宰
        //屠宰添加
        Task<int> AddSlaughter(Slaughter mode);
        //屠宰列表
        Task<object> GetSlaughter(int id);
        #endregion

        #region 深加工
        //深加工添加
        Task<int> Addprocessing(Processing mode);
        //深加工列表
        Task<object> Getprocessing(int id);
        #endregion
    }
}
